#include "GPIO/gpio_app.h"

/**
 ****************************************************************************************************
 * DONE 变量
 ****************************************************************************************************
 */



/**
 ****************************************************************************************************
 * 用户函数
 ****************************************************************************************************
 */

/**
 * @name LED设置函数
 * @brief 设置相应LED的电平
 * @param LED_number LED标号，0-3表示LED1-LED3
 * @param GPIO_Value 设置的电平值，GPIO_PinState类型
 */
void LED_SetValue(uint16_t LED_number,GPIO_PinState GPIO_Value)
{
	if(LED_number == 1)
	{
		HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_Value);
	}
	else if(LED_number == 2)
	{
		HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_Value);
	}
	else if(LED_number == 3)
	{
		HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_Value);
	}
}

/**
 * @name 蜂鸣器设置函数
 * @brief 设置蜂鸣器电平
 * @param GPIO_Value 设置的电平值，GPIO_PinState类型,高电平响应
 */
void BEEP_SetValue(GPIO_PinState GPIO_Value)
{
	HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_Value);
}

/**
 * @name 按键读取函数
 * @brief 读取按键电平值
 * @retval 电平值（0，1）
 */
uint16_t KEY_READValue(void)
{
	if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)) return 1;
	else return 0;
}

/**
 * @name 获取按键值
 * @brief 读取按键值并消抖
 */
uint16_t KEY_GetValue(void)
{
	if(KEY_READValue() == 0)
	{
		HAL_Delay(20);
		while(KEY_READValue() == 0);
		HAL_Delay(20);
		return 1;
	}
	return 0;
}
